fix(server): bound OpenCode V2 approval and question replies - #9906
fix(server): bound OpenCode V2 approval and question replies#9906saphid wants to merge 385 commits into
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped server bug fix that bounds existing OpenCode approval and question replies, propagates cancellation, and verifies timeout plus retry behavior for both paths. The remaining test-only change has no production impact, and no product defaults or static-analysis settings are modified. You can add or adjust custom eligibility rules. Learn more. |
b82facd to
2ac9bfe
Compare
8a439cc to
d85a8e8
Compare
9242b91 to
3d81172
Compare
Allow merge-back from provider-finished runs awaiting checkpoint capture while keeping waiting runs visible but non-interruptible in mobile. Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
- Re-route steering that races completion into idempotent follow-up dispatches - Preserve scheduled-task attribution and provider ownership history across clients
Port main's pull-request discovery, active thread ordering, async question dismissal, settlement fixes, provider-session import, attachment context, and provider correctness changes into orchestration v2. Keep the branch's intentional composer and subagent behavior while adopting main's web and mobile fixes. Prevent headless setup terminals from hanging on the color probe, and move the v2 migration block to 050-061 after main claimed 048-049.
Restore the failed-before-start timer guard, align two server fixtures with the reconciled behavior, and remove dead files, exports, and dependencies surfaced by Knip. Drop the temporary branch push trigger now that the PR is mergeable, so each update runs the pull-request workflow once.
Keep main's batch machine-update banner and update action while preserving the v2 runtime-based environment lock used by draft load balancing.
Adopt TypeScript 7 and Effect rc.112 across orchestration v2, including the TaggedError API migration and updated Effect-aware tests. Restore main's composer-aware scroll-to-end clearance while retaining selected-model settings sync, preview recording transfer, image galleries, desktop context menus, and layout hit targets. Regenerate the lockfile on the upgraded dependency baseline.
efd9994 to
6102d00
Compare
Advertise bounded socket snapshots and authoritative dispatch validation, omit raw command output and inline file bodies at the wire boundary, and preserve compact status metadata across web and mobile. Add transport-budget coverage for snapshots, resume, commands, legacy import, and projection maintenance.
fbd1e24 to
26d262d
Compare
Dismissing prior approval to re-evaluate 26d262d
ed5dc41 to
2b1139a
Compare
|
Closing as already implemented on remote v2 by fb086a8. Both question.reply and permission.reply receive the SDK abort signal and have a ten-second deadline, preserving retryable pending-request state on failure. The current adapter tests cover cancellation of undelivered replies. |
OpenCode V2 approval and question replies now have a ten-second bound and pass the cancellation signal through to the SDK. A stalled reply can no longer hold the request indefinitely; normal replies preserve the existing behavior.
Current head
26d262df5includes current V2 base7dd9873edand the shared test-only prerequisite #10865. Merge #10865 first; the topic itself changes 2 files. This rebuild removes the obsolete merged-base history from the PR diff.Validation: 59 focused tests pass across the affected feature and foundation persistence coverage. Scoped server typecheck passes; targeted lint, formatting and diff checks pass. New-head CI is pending.
Independent cross-provider review was unavailable: the direct Claude Opus 5 high launcher in this audit exited 1 with expired OAuth before inference. No Claude review is claimed.
Targets Orchestrator V2 in #2829. Updated with GPT-6 in Codex/T3.